# 列表
# list1 = [1, 2, 3, 4]
# print(list1, type(list1))
# 列表可以进行切片操作
# list2 = [1, 2, 3, 4]
# print(list2[1:3])
# 列表是可迭代对象，可以用for遍历取值
# list3 = [1, 2, 3, 4]
# for i in list3:
#     print(i)

# 列表相关操作
# append() extend() insert()  添加元素
listStr1 = ["int", "char", "string", "float"]
# listStr1.append("double")    #append()整体添加
# print(listStr1)
# listStr1.extend("double")   #extend()将元素逐一添加
# listStr1.extend(1)    #会报错，因为整形不是可迭代对象
# listStr1.extend("1")    #不会报错
# print(listStr1)
# listStr1.insert(3, "double1")    #insert()在指定位置插入元素，原元素后移一位
# listStr1.insert(-1, "double2")
# print(listStr1)

# 修改元素
# 通过下标进行修改
# listStr2 = ["int", "char", "string", "float"]
# listStr2[0] = "double"
# print(listStr2)

# 查询元素
# in 和not in    in判断指定元素是否存在列表中
# listStr3 = ["int", "char", "string", "float"]
# print("double" in listStr3)
# print("int" not in listStr3)

# 查询登录用户名
# name_list = ["zhang", "wang", "li"]
# while True :
#     name = input("请输入你的用户名:")
#     if name in name_list :
#         print(f"用户名{name}已经被使用,请重新输入")
#     else:
#         print(f"您的用户名为：{name}")
#         name_list.append(name)
#         break
# print(name_list)

# del 删除列表
# listStr4 = ["int", "char", "string", "float"]
# del listStr4[0]
# print(listStr4)
# del listStr4
# print(listStr4)     #列表被删除，报错

# pop 出栈
# listStr5 = ["int", "char", "string", "float"]
# x = listStr4.pop()
# print(x)
# print(listStr4)
# listStr4.pop(1)
# print(listStr4)

# remove 根据元素的值进行删除
# listStr6 = ["int", "char", "string", "float", "int"]
# listStr6.remove("int")      #默认删除第一个元素
# print(listStr6)

# 排序
# sort：将列表重新按照从小到大的顺序进行排列
# reverse:将列表倒置
# listNum1 = [1, 9, 5, 7, 3, 4, 6]
# listNum1.sort()
# print(listNum1)
# listNum1.reverse()
# print(listNum1)

# 列表推导式
# [表达式 for 变量 i 列表]
# [表达式 for 变量 i 列表 if 条件]
# listNum2 = [1, 9, 5, 7, 3, 4, 6]
# [print(i * 2) for i in listNum2]
# li = []
# [li.append(i) for i in range(1, 100) if i % 2 == 1]   #将1-100所有的奇数存到li列表里
# print(li)

# 列表嵌套
# list1 = [1, 2, 3, 4]
# list2 = [5, 6, list1]
# print(list2[2])
# print(list2[2][0])